递归函数

Java代码

/**
 * 递归函数,用于找出数组中指定范围的最大元素值
 * @param {Array} arr - 要查找最大元素的数组
 * @param {number} start - 查找范围的起始索引
 * @param {number} end - 查找范围的结束索引
 * @returns {number} - 该范围内的最大元素值
 */
function findMax(arr, start, end) {
    // 如果起始索引和结束索引相同,说明该范围内只有一个元素
    if (start === end) {
        // 直接返回该元素
        return arr[start];
    }
    // 计算中间位置的索引
    const mid = Math.floor((start + end) / 2);
    // 递归调用 findMax 函数,找出前半部分的最大元素值
    const max1 = findMax(arr, start, mid);
    // 递归调用 findMax 函数,找出后半部分的最大元素值
    const max2 = findMax(arr, mid + 1, end);
    // 返回前半部分和后半部分最大元素值中的较大值
    return Math.max(max1, max2);
}

// 示例数组
const a = [3, 7, 1, 9, 5, 2, 8];
// 获取数组的长度
const n = a.length;
// 调用 findMax 函数,找出整个数组的最大元素值
const maxElement = findMax(a, 0, n - 1);
// 输出数组中的最大元素值
console.log(`数组中的最大元素值是: ${maxElement}`);

            

运行结果

数组中的最大元素值是: 9